const Koa = require('koa')
const Router = require('koa-router')
const bodyParser = require('koa-bodyparser')
const logger = require('koa-logger')
const path = require('path')
const serve = require('koa-static')
const dotenv = require('dotenv')

// 加载环境变量
dotenv.config()

// 创建 Koa 实例
const app = new Koa()

// 中间件
app.use(logger()) // 日志中间件
app.use(bodyParser()) // 解析请求体

app.use(serve(path.join(__dirname, 'public'))) // 提供静态资源
// 路由
const router = new Router()
router.get('/', async (ctx: { body: string }) => {
  ctx.body = 'Hello, Koa!'
})

// 加载路由
app.use(router.routes()).use(router.allowedMethods())

// 错误处理
app.on('error', (err: any, ctx: any) => {
  console.error('server error', err, ctx)
})

// 导出 Koa 实例
module.exports = app
